package dtos;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import entities.FacturaVenta;
import entities.ItemsVenta;

public class FacturaVentaDTO implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = -5924912609725656191L;
	private int id;
	private int nroComanda;
	private int nroFactura;
	private Date fecha;
	private float total;
	private ClienteDTO cliente;
	private FormaVentaDTO forma;
	private TipoTurnoDTO horario;
	private FormaPagoDTO pago;
	private List<ItemsVentaDTO> items;
	private int estado;

	public FacturaVentaDTO() {
		super();
		// TODO Auto-generated constructor stub
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getNroComanda() {
		return nroComanda;
	}
	public void setNroComanda(int nroComanda) {
		this.nroComanda = nroComanda;
	}
	public int getNroFactura() {
		return nroFactura;
	}
	public void setNroFactura(int nroFactura) {
		this.nroFactura = nroFactura;
	}
	public Date getFecha() {
		return fecha;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	public float getTotal() {
		return total;
	}
	public void setTotal(float total) {
		this.total = total;
	}
	public FormaVentaDTO getForma() {
		return forma;
	}
	public void setForma(FormaVentaDTO forma) {
		this.forma = forma;
	}
	public TipoTurnoDTO getHorario() {
		return horario;
	}
	public void setHorario(TipoTurnoDTO horario) {
		this.horario = horario;
	}
	public FormaPagoDTO getPago() {
		return pago;
	}
	public void setPago(FormaPagoDTO pago) {
		this.pago = pago;
	}
	public List<ItemsVentaDTO> getItems() {
		return items;
	}
	public void setItems(List<ItemsVentaDTO> items) {
		this.items = items;
	}
	public ClienteDTO getCliente() {
		return cliente;
	}
	public void setCliente(ClienteDTO cliente) {
		this.cliente = cliente;
	}
	public int getEstado() {
		return estado;
	}
	public void setEstado(int estado) {
		this.estado = estado;
	}
	
	public FacturaVentaDTO parseDTO(FacturaVenta fac){
		FacturaVentaDTO f = new FacturaVentaDTO();
		ClienteDTO c = new ClienteDTO();
		TipoTurnoDTO tv = new TipoTurnoDTO();
		FormaVentaDTO fv = new FormaVentaDTO();
		FormaPagoDTO fp = new FormaPagoDTO();
		c = c.parseDTO(fac.getCliente());
		fv = fv.parseDTO(fac.getForma());
		tv = tv.parseDTO(fac.getHorario());
		fp = fp.parseDTO(fac.getPago());
		List<ItemsVentaDTO> itemsDTO = new ArrayList<ItemsVentaDTO>();
		f.setCliente(c);
		f.setEstado(fac.getEstado());
		f.setFecha(fac.getFecha());
		f.setForma(fv);
		f.setHorario(tv);
		f.setNroComanda(fac.getNroComanda());
		f.setNroFactura(fac.getNroFactura());
		f.setPago(fp);
		f.setTotal(fac.getTotal());
		Iterator<ItemsVenta> it = fac.getItems().listIterator();
		while(it.hasNext()){
			ItemsVenta itmEnt = (ItemsVenta) it.next();
			ItemsVentaDTO itm = new ItemsVentaDTO();
			itm = itm.parseDTO(itmEnt);
			itemsDTO.add(itm);
		}
		f.setItems(itemsDTO);
		return f;
	}
}
